[breaking] [deprecation] Remove Cilium BGP load balancer support - #602
Open
moshevayner wants to merge 2 commits into
Open
[breaking] [deprecation] Remove Cilium BGP load balancer support#602moshevayner wants to merge 2 commits into
moshevayner wants to merge 2 commits into
Conversation
Signed-off-by: Moshe Vayner <moshe@vayner.me>
moshevayner
commented
Jul 31, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #602 +/- ##
==========================================
+ Coverage 73.76% 75.21% +1.45%
==========================================
Files 19 18 -1
Lines 3045 2679 -366
==========================================
- Hits 2246 2015 -231
+ Misses 538 453 -85
+ Partials 261 211 -50 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
moshevayner
marked this pull request as ready for review
July 31, 2026 21:06
komer3
reviewed
Aug 3, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR removes the Cilium BGP shared-IP LoadBalancer implementation from the Linode Cloud Controller Manager, leaving NodeBalancers as the only supported LoadBalancer backend while keeping the --load-balancer-type=nodebalancer flag for deployment compatibility.
Changes:
- Removes Cilium BGP runtime code, flags/options, Helm wiring/RBAC, and e2e assets related to BGP testing.
- Updates CCM load balancer implementation to be NodeBalancer-only and prunes Cilium-related module dependencies.
- Updates documentation/examples to reflect NodeBalancers as the supported LoadBalancer implementation.
Reviewed changes
Copilot reviewed 26 out of 27 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates feature description to reflect NodeBalancer-only load balancing. |
| mise.toml | Removes the e2e-test-bgp task. |
| Makefile | Removes the e2e-test-bgp target and associated setup/test invocation. |
| main.go | Removes BGP-related flags and narrows --load-balancer-type help text to NodeBalancer. |
| go.sum | Removes Cilium and related transitive dependency checksums. |
| go.mod | Drops github.com/cilium/cilium and related indirect deps; retains only what’s still needed. |
| e2e/setup/cilium-setup.sh | Deletes Cilium BGP e2e setup script (no longer used). |
| e2e/bgp-test/lb-cilium-bgp/create-pod-service.yaml | Deletes Cilium BGP e2e manifest. |
| e2e/bgp-test/lb-cilium-bgp/chainsaw-test.yaml | Deletes Cilium BGP chainsaw e2e test. |
| docs/getting-started/overview.md | Removes mention of BGP-based IP sharing from overview. |
| docs/getting-started/helm-installation.md | Removes Helm values example for shared-IP/BGP configuration. |
| docs/examples/README.md | Removes “Shared IP Load-Balancing” from examples index. |
| docs/examples/advanced.md | Removes the shared-IP/BGP advanced example. |
| docs/configuration/README.md | Removes BGP-related bullets from configuration overview. |
| docs/configuration/loadbalancer.md | Documents NodeBalancer-only support and removes BGP section/references. |
| docs/configuration/environment.md | Removes BGP env/flag documentation; updates flag table entry for --load-balancer-type. |
| deploy/chart/values.yaml | Removes commented shared-IP/BGP values stanza. |
| deploy/chart/templates/daemonset.yaml | Removes shared-IP/BGP args injection logic from the DaemonSet template. |
| deploy/chart/templates/clusterrole-rbac.yaml | Removes conditional RBAC rules for Cilium CRDs. |
| cloud/linode/service_controller_test.go | Updates tests to construct loadbalancers without Cilium/BGP fields. |
| cloud/linode/options/options.go | Removes BGP-specific options fields from the global Options struct. |
| cloud/linode/loadbalancers.go | Removes all Cilium/BGP load balancer logic; simplifies loadbalancers struct accordingly. |
| cloud/linode/loadbalancers_test.go | Removes Cilium client field usage in tests and aligns struct construction. |
| cloud/linode/cloud.go | Removes Cilium LB type support from supported types and drops IP-holder suffix validation. |
| cloud/linode/cloud_test.go | Removes IP-holder suffix length test (no longer applicable). |
| cloud/linode/cilium_loadbalancers.go | Deletes the Cilium BGP implementation file. |
| cloud/linode/cilium_loadbalancers_test.go | Deletes the Cilium BGP unit test suite. |
AshleyDumaine
approved these changes
Aug 3, 2026
Signed-off-by: Moshe Vayner <moshe@vayner.me>
moshevayner
force-pushed
the
remove-cilium-bgp-mode
branch
from
August 3, 2026 21:38
058b2b9 to
5c8a183
Compare
komer3
approved these changes
Aug 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Removes Cilium BGP load-balancer support from the CCM.
--load-balancer-type=nodebalancerfor existing deployment compatibility.Deprecation / Breaking Change
--load-balancer-type=cilium-bgpis no longer supported. It will be accepted as a command line option, but will be a no-op moving forward and treated asnodebalanceras the default option.Clusters using Cilium BGP shared-IP load balancing must migrate to NodeBalancers, including Premium NodeBalancers where higher capacity is required.
Validation
mise run codegengo test ./...helm lint deploy/charthelm template ccm deploy/chartSigned-off-by: Moshe Vayner moshe@vayner.me
General:
Pull Request Guidelines: